A digital video system may provide significant advantages over an analog video system. For example, the digital video system may transmit or store information without distortion. The digital video system, however, can need a wide bandwidth for transmission and significant storage when the video contains a substantial amount of information. The transmission bandwidth and storage requirements of some digital video can present a substantial problem for some video broadcasting media, such as through Internet connections which have limited bandwidths. Many efforts to reduce the bandwidth demands of digital signals, such as video streams, have been made, resulting in the development of compression technologies. One example is the MPEG-2 technology, which was defined by MPEG (Moving Picture Experts Group). MPEG-2 can substantially compress video data by curtailing redundant information in a video stream.
In a typical MPEG encoding process, video signals are sampled and quantized as chrominance elements and luminance elements of digital video pixels. These chrominance elements and luminance elements are stored as macroblock structures. The chrominance elements and the luminance elements stored in a macroblock are transformed to frequency coefficients through Discrete Cosine Transform (Hereinafter referred to as DCT).
The MPEG encoding process focuses on the fact that the human optical system doesn't sense very well high-frequency elements of the variations of the chrominance elements and the luminance elements. Therefore, the high frequency DCT coefficients are relatively less precisely quantized. The quantized DCT coefficients are more compressed through a Run-Level Coding (RLC) and a Variable Length Coding (VLC).
The MPEG standards provide an additional compression by a motion compensation method. According to the MPEG standards, there are three types of pictures (of frames), an I-frame, a P-frame, and a B-frame. The I-frame represents an Intra-coded frame and can be reconstructed without a reference frame. Both the P-frame and the B-frame represent inter-coded frames and can be reconstructed with reference frames. For example, both the P-frame and the B-frame include motion vectors indicating motions with respect to a reference frame. The adoption of the motion vectors in MPEG greatly contributes to reducing the required bandwidth, particularly for video streams, because adjacent frames in a video stream are likely to be very similar.
Recently, digital applications using compression methods such as MPEG-2 have been increasing. Transcoding methods, which convert one type of video stream with a particular bit rate into other types of video streams with different bit rates, have been in particular demand due to various applications such as video searching, picture in picture (PIP) functions for video display, video joining, video editing, and converting between bit rates. For example, a JPEG (Joint Photographic Experts Group) type bit stream can be converted into an MPEG bit stream, a DV (Digital Video) format which may be generated as a digital output of a digital camcorder can be converted into an MPEG bit stream, or a high quality HD (High Definition) MPEG bit stream can be converted into a low quality SD (Standard Definition) MPEG bit stream.
Transcoding algorithms can be classified into spatial domain transcoding and DCT domain transcoding. During a transcoding process, a transcoder produces output parameters that it uses to encode a video stream. Output parameter production algorithms focus mainly on classifying a mode of an output macroblock and estimating output motion vectors, which are important to the transcoding process.
When downsizing bit streams, such as converting a high quality HD MPEG bit stream into a low quality SD MPEG bit stream, two types of bit stream downsizing processes that may be used are integer scaling and non-integer scaling.
FIG. 1A is a diagram illustrating a transcoding process with integer scaling. Referring to FIG. 1A, a transcoding process with integer scaling performs a selection of a mode of an output macroblock 120 based on each of input macroblocks 111, 113, 115 and 117, and then estimates a motion vector with a scaling ratio.
FIG. 1B is a diagram illustrating a transcoding process with non-integer scaling. Transcoding with non-integer scaling is frequently used in applications that support different video resolutions.
Referring to FIG. 1B, the transcoding process with non-integer scaling may not obtain the output macroblock mode and the output motion vector as simply as transcoding with integer scaling. Each input macroblock (nine shown), which overlaps with a correlation area 150 correlated with an output macroblock, may respectively have different influences on the output macroblock.
Thus, the non-integer scaling transcoding estimates the output macroblock mode and the output motion vector through rather sophisticated processes.
One typical output macroblock mode estimation algorithm is a GWM (Go-With-Majority) algorithm, which is an estimation method that operates on a number of macroblocks. The GWM algorithm, however, does not consider the significance of the macroblocks, so it may not efficiently estimate the output macroblock mode and which may degrade the performance of a transcoder the transcoding process.
Another estimation algorithm that estimates the overall motion of the input macroblocks is an MVS (Median Vector Selection) algorithm. The MVS algorithm, however, also does not consider the significance of each macroblock, instead it estimates the overall motion of the macroblocks.
Another algorithm is a WMVS (Weighted Median Vector Selection) algorithm, which determines an activity of the macroblocks using non-zero DCT coefficients, and then estimate overall motion of the input macroblocks based on the activity. The WMVS, however, may not efficiently perform the transcoding because the macroblock activity, which is obtained using only the DCT coefficients, doesn't exactly estimate the overall motion of the input macroblocks.
A transcoder and a transcoding method are disclosed in Korean Patent Laid-open Application No. 2003-0050387. The transcoder and the transcoding method estimate the output macroblock mode by adopting a weight value corresponding to the overlapped macro blocks in order to reduce computational requirements without picture deterioration.
It can be difficult to estimate the exact output macroblock mode based only on the weight value corresponding to the overlapped macroblocks. Therefore, a more precise method for estimating the output macroblock mode and the output motion vector for the transcoding would be beneficial.